package com.jumi.microservice.warehousein.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jumi.microservice.common.base.AbstractObject;
import com.jumi.microservice.common.validator.group.InsertGroup;
import com.jumi.microservice.common.validator.group.UpdateGroup;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author ssk
 * @create 2020/8/11 15:33
 **/
public class JmWarehouseInRequest extends AbstractObject implements Serializable {
    private static final long serialVersionUID = -4070497664213098901L;

    /** 主键ID */
    @NotNull(message = "不能为空",groups = {UpdateGroup.class})
    @ApiModelProperty("入库申请ID")
    private Long inId;

    /** 入库类型ID */
    @NotNull(message = "不能为空",groups = {UpdateGroup.class, InsertGroup.class})
    @ApiModelProperty("入库申请类型ID")
    private Long inTypeId;

    /** 是否为普通入库;0=否,1=是 */
    @ApiModelProperty("是否为普通入库;0=否,1=是")
    private Integer isNormal;

    /** 入库时间 */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("入库时间")
    private Date inTime;

    /** 仓库ID */
    @ApiModelProperty("仓库ID")
    private Long warehouseId;

    @ApiModelProperty("仓库类型;0=正规仓,1=破损仓")
    private Integer warehouseType;

    /** 商品ID */
    @ApiModelProperty("商品ID")
    private Long goodsId;

    @ApiModelProperty("商品名称(查询用)")
    private String goodsName;

    @ApiModelProperty("商品类型(查询用)")
    private Integer goodsType;

    /** 供应商ID */
    @ApiModelProperty("供应商ID")
    private Long supplierId;

    /** 批次号 */
    @ApiModelProperty("批次号")
    private String batchCode;

    /** 入库总数 */
    private Integer totalNum;

    /** 状态 */
    @ApiModelProperty("状态;0=未禁用,1=启用")
    private Integer status;

    /** 备注 */
    @ApiModelProperty("备注")
    private String remark;

    @ApiModelProperty("起始时间(查询用)")
    private String startTime;

    @ApiModelProperty("截止时间(查询用)")
    private String endTime;

    private List<JmWarehouseInDetailRequest> details;

    public Long getInId() {
        return inId;
    }

    public void setInId(Long inId) {
        this.inId = inId;
    }

    public Long getInTypeId() {
        return inTypeId;
    }

    public void setInTypeId(Long inTypeId) {
        this.inTypeId = inTypeId;
    }

    public Integer getIsNormal() {
        return isNormal;
    }

    public void setIsNormal(Integer isNormal) {
        this.isNormal = isNormal;
    }

    public Date getInTime() {
        return inTime;
    }

    public void setInTime(Date inTime) {
        this.inTime = inTime;
    }

    public Long getWarehouseId() {
        return warehouseId;
    }

    public void setWarehouseId(Long warehouseId) {
        this.warehouseId = warehouseId;
    }

    public Long getGoodsId() {
        return goodsId;
    }

    public void setGoodsId(Long goodsId) {
        this.goodsId = goodsId;
    }

    public Long getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Long supplierId) {
        this.supplierId = supplierId;
    }

    public String getBatchCode() {
        return batchCode;
    }

    public void setBatchCode(String batchCode) {
        this.batchCode = batchCode;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getTotalNum() {
        return totalNum;
    }

    public void setTotalNum(Integer totalNum) {
        this.totalNum = totalNum;
    }

    public List<JmWarehouseInDetailRequest> getDetails() {
        return details;
    }

    public void setDetails(List<JmWarehouseInDetailRequest> details) {
        this.details = details;
    }

    public String getStartTime() {
        return startTime;
    }

    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Integer getWarehouseType() {
        return warehouseType;
    }

    public void setWarehouseType(Integer warehouseType) {
        this.warehouseType = warehouseType;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public Integer getGoodsType() {
        return goodsType;
    }

    public void setGoodsType(Integer goodsType) {
        this.goodsType = goodsType;
    }
}
